package leetcode;

public class SumRootToLeafNumbers {
	public int sumNumbers(TreeNode root) {
		if (root == null)
			return 0;

		return sumNums(root, 0);
	}

	private int sumNums(TreeNode n, int p) {
		int i = p * 10 + n.val;

		if (isLeaf(n))
			return i;
		else {
			int s = 0;
			if (n.left != null)
				s += sumNums(n.left, i);
			if (n.right != null)
				s += sumNums(n.right, i);

			return s;
		}
	}

	public boolean isLeaf(TreeNode n) {
		return n.left == null && n.right == null;
	}
}
